<?php
class ModeloModuloKakoon
{
	private $accesoBD;

	public function __construct(AccesoBD $accesoBD)
	{
		$this->accesoBD = $accesoBD;
	}

	public function purga (ModuloKakoon $modulo)
	{
		$sql = "DELETE FROM ". MenuModuloKakoon::TABLA ." WHERE ". ModuloKakoon::CLAVE_PRIMARIA ."=". $modulo->getIdentificador();
		$this->accesoBD->query($sql);

		$sql = "DELETE FROM ". MenuPublicoKakoon::TABLA ." WHERE url='". $modulo->getPropiedad("url") ."'";
		$this->accesoBD->query($sql);

		$modulo->purga();
	}

	public function getModulosActivos()
	{
		$retorno = array();
			
		$sql = "SELECT ". ModuloKakoon::CLAVE_PRIMARIA ." FROM ". ModuloKakoon::TABLA;
		$sql.= " WHERE activo='". ConstantesKakoon::SI ."'";
			
		$resultado = $this->accesoBD->queryBDObjetos($sql);
			
		foreach ($resultado as $unResultado)
		{
			$modulo = new ModuloKakoon($this->accesoBD, $unResultado->getValor(ModuloKakoon::CLAVE_PRIMARIA));

			array_push($retorno, $modulo);
		}
			
		return $retorno;
	}

	public function getMenu()
	{
		$retorno = array();
			
		$sql = "SELECT ". ModuloKakoon::CLAVE_PRIMARIA .",nombre FROM ". ModuloKakoon::TABLA;
		$sql.= " WHERE activo='". ConstantesKakoon::SI ."'";
			
		$resultado = $this->accesoBD->queryBDObjetos($sql);
			        
		foreach ($resultado as $unResultado)
		{
			$sql = "SELECT titulo,url FROM ". MenuModuloKakoon::TABLA;
			$sql.= " WHERE ". ModuloKakoon::CLAVE_PRIMARIA ."=". $unResultado->getValor(ModuloKakoon::CLAVE_PRIMARIA);

			$resultadoMenu   = $this->accesoBD->queryBDObjetos($sql);
			$opciones        = array();

			foreach ($resultadoMenu as $unResultadoMenu)
			{
				$hayMenu = true;

				$titulo     = $unResultadoMenu->getValor("titulo");
				$url        = $unResultadoMenu->getValor("url");

				$opciones[$titulo] = $url;
			}
				
			if (count ($opciones) > 0)
			{
				$retorno[$unResultado->getValor("nombre")] = $opciones;
			}
		}
			
		return $retorno;
	}
}
?>